1.1 Field of the Invention
The present invention relates to computer network architectures, and, more specifically, to software for managing computer and communications networks. More particularly, the present invention provides software, systems, and apparatus for managing software entities and hardware over a computer network. The present invention has applications in the areas of computer science, computer network management, and computer software.
1.2 The Related Art
The demands on computer network managers have grown exponentially as the size and extensiveness of computer networks has grown over the past decade. Starting from the relatively simple task of maintaining communication among a relatively small number of mainframe computers, network managers must now coordinate operations among thousands of computers, printers, servers, and other networked devices. With the advent of the Java(copyright) and Jini(trademark) programming languages, even household devices will soon become linked over computer networks running on household xe2x80x9cintranetsxe2x80x9d that in turn are linked to the worldwide Internet. Thus, there appears to be no end in sight to the increasing burden on network managers.
To control and coordinate the software associated with the myriad of networked computers and other devices, network managers employ software designed to track, establish communications with, and control various software entities or processes that exist independently or represent the networked devices. Entities that represent networked devices are also referred to herein as xe2x80x9cagentsxe2x80x9d. The software used by the network manager interacts with various xe2x80x9cplatform-levelxe2x80x9d software services to enable the network manager to locate and interact with the various entities running on the network. Various services are provided to identify the entities, retrieve needed data about the properties and states of the entities, and store that information for use by other entities and user applications. In particular, a topology service is used to store information about the entities and devices and their relationships.
Generally, production of software for network use is cumbersome and expensive. For example, to create the various software applications, agents, and other entities resident on the network, programmers have to be fluent in languages standards, guidelines, and syntax and APIs such as PMI, C++, GDMO (Guidelines for Definition of Managed Objects), and ASN1 (Abstract Syntax Notation One). The new software then has to be debugged prior to installation, and, once installed, creates a new level of complexity for the network manager. Production of such software is expensive, as relatively few programmers have the requisite familiarity with the diverse and arcane languages required to write network software. Once written, additional expenses are incurred in the cycle of debugging and upgrading.
The Java programming language has emerged as a tool for producing software efficiently. In particular, the combination of Java programming code and the Java Virtual Machine (xe2x80x9cJVMxe2x80x9d) allows the creation of platform-independent software that can be installed dynamically and/or remotely. Thus, the use of Java-coded network software applications, agents, and other entities can alleviate the above-described expenses and difficulties associated with producing network management software using traditional languages and methods. In addition, the Java programming language is richer than the languages used currently to provide network management software. Thus, Java-based software management software application, agents, and entities having more functionality can be developed.
However, the provision of several programming tools would facilitate writing Java network management software and install those applications on systems using GDMO compliant CMIS (Common Management Information Services) objects. These tools include tools capable of translating JavaBean classes into their corresponding GDMO compliant objects, a device to map GDMO compliant CMIS requests into JavaBean Java Dynamic Management Kit (xe2x80x9cJDMKxe2x80x9d), and a mechanism to translate JDMK JavaBean events to CMIS notifications. Therefore, it would be beneficial to provide such tools for producing Java-based computer network management software. The present invention meets these and other needs.
The present invention meets the above-described needs by providing, in one aspect, programming tools that facilitate writing and incorporating Java network management software for computer and communications network management architectures. The software, systems, and methods provided by the present invention will thus allow computer network programmers and managers easier access to the benefits provided by the Java programming language. These benefits include faster development time, greater access to programmer talent, and easier implementation.
In a first aspect, the present invention provides a system for implementing Java-based software network management objects configured to implement computer network management functions on a computer network. In one embodiment, the system of the invention includes a computer network management information server configured to send and receive computer network management communications. The network management server performs communications using a first computer network management communications protocol. The system further includes a Java development management kit (xe2x80x9cJDMKxe2x80x9d) methods protocol adapter (xe2x80x9cMPAxe2x80x9d) that is configured to translate the first computer network management communications protocol into a JDMK communications protocol. A JDMK agent that is configured to communicate with the JDMK MPA using the JDMK communications protocol also is included.
In another embodiment, the JDML MPA includes an object hierarchy traversal mechanism that is configured to traverse hierarchical JDMK agent and object data structures. The JDMK MPA further includes a first translation mechanism configured to translate computer instructions encoded in a first computer instruction language into a Java native interface (xe2x80x9cJNIxe2x80x9d) computer instruction language. A second translation mechanism configured to translate computer instructions encoded in a Java native interface computer instruction language into a Java development management kit computer instruction language is also included. The first computer instruction language can be C++, and, more specifically, Java, but is not so limited. In a more specific embodiment, the object hierarchy traversal mechanism is coupled with, and configured to communicate with, the management information server. The second translation mechanism is coupled with, and configured to communicate with, the Java development management kit agent. In other embodiments the first- and second translation mechanisms are configured to be accessed directly.
In another aspect, the present invention includes a method for controlling computer network management software that include Java-defined objects and methods. In one embodiment, a method of the invention includes the step of translating Java-defined objects and methods into a computer network communications protocol or language. A document including these translated objects and methods is created and installed in a management information server. An object located in the management information server is configured to represent the computer network management software. This object is used to communicate with the computer network management software.
In a more specific embodiment, the network communications protocol or language is GDMO. In another embodiment, each Java-defined object class of the computer network management software maps onto a corresponding GDMO class. Each getter, setter, and isxxx statement of the computer network management software into a corresponding GDMO statement. Event-specific class and perform method of the computer network management software is mapped into a corresponding GDMO statement.
In another aspect, the present invention provides computer-readable media and data signals that are configured to cause a computer to perform the computer-implemented steps of translating Java-defined objects and methods into a computer network communications protocol or language. The computer-readable media and signals further include code devices configured to cause a computer to create a document including these translated objects and methods and install the document in a management information server. The computer-readable media and signals further include code devices configured to cause a computer to configure and locate an object in the management information server to represent the computer network management software. This object is used to communicate with the computer network management software.
These and other aspects and advantages will become apparent when the Description below is read in conjunction with the accompanying Drawings.